package com.example.demo.service;

import com.example.demo.domain.vo.GroupVO;
import com.example.demo.domain.vo.HistoricIdentityLinkVO;
import com.example.demo.domain.vo.HistoricProcessInstanceVo;
import com.example.demo.domain.vo.HistoryTaskInstanceVo;
import com.example.demo.domain.vo.IdentityLinkVo;
import com.example.demo.domain.vo.ProcessInstanceVo;
import com.example.demo.domain.vo.TaskVo;
import com.example.demo.domain.vo.UserVO;

import java.io.InputStream;
import java.util.List;

/**
 *
 * @Description:
 * @Author: zsg
 * @Date: 2018/07/02 15:25
 */
public interface ActivitiService {

     void createUser(UserVO userVO);

     void createGroup(GroupVO groupVO);

     void  createMemberShip(String uid,String gid);

     List<ProcessInstanceVo> startProcess(String processKey, String userId);

     ProcessInstanceVo startGroupProcess(String processKey, String userIds);

     List<TaskVo> findMyTaskList(String assignee) ;

     void competeCurrentTask(String taskId);

     void completeOwnerTask(String taskId);

     void ownerTask(String taskId,String userId);

     List<HistoryTaskInstanceVo> findHistoryTask(String taskAssignee);

     HistoricProcessInstanceVo findHistoryProcessInstance(String processInstanceId);

     void viewPic(String deploymentId);

     InputStream getDiagram(String processInstanceId);

     void  deleteProcess(String processInstanceId,String reason);

     void addGroupUser(String taskId,String userId);

     void  deleteGroupUser(String taskId,String userId);

     void claim(String taskId,String userId);

     List<HistoricIdentityLinkVO>  findHistoryGroupUser(String taskId);

     List<IdentityLinkVo> findGroupUser(String taskId);

     List<TaskVo> findMyGroupTask(String userId);

     ProcessInstanceVo startExclusiveGateWayProcess(String processKey, double money);

     List<ProcessInstanceVo> startparallelGateWayProcess(String processKey);



}
